#ifndef TD_TEXT_MESSAGE_H_
#define TD_TEXT_MESSAGE_H_

/************************************************************************/
/* STL                                                                  */
/************************************************************************/
#include <string>


/************************************************************************/
/* PROJECT                                                              */
/************************************************************************/

/************************************************************************/
/* Core                                                                 */
/************************************************************************/
#include "Core/Coord2D.h"

/************************************************************************/
/* GUI                                                                  */
/************************************************************************/
#include "GUI/TextMessages/BaseTextMessage.h"

/************************************************************************/
/* Resources                                                           */
/************************************************************************/
#include "Resources/SDLFont.h"
#include "Resources/ResourceManager.h"

using namespace TD_Core;

namespace TD_GUI {

   class TextMessage : public BaseTextMessage {

   protected:
      /** String containing the message text.*/

      shared_ptr<SDLFont> m_pFont;

   public:

      /************************************************************************/
      /* ctors and dtors					                                    */
      /************************************************************************/
      //Default constructor
      explicit TextMessage();

      //Copy constructor
      explicit TextMessage(const TextMessage &rhs);

      //Assignment constructor
      TextMessage& operator=(const TextMessage &rhs);

      //Destructor
      ~TextMessage();

      //Initialization constructor
      TextMessage(const Coord2D &textPos, const string &initString, const string &fontSource, unsigned int fontSize, const Color &fontColor, renderType g_renderType = textBlended);

      /************************************************************************/
      /* Access functions                                                     */
      /************************************************************************/

      /************************************************************************/
      /* Rendering                                                            */
      /************************************************************************/
      void render(SDL_Surface *const g_destSurface, unsigned int deltaTime);
   };
}
#endif